home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Forever 4
/
Atari Forever 4.zip
/
Atari Forever 4.iso
/
PD_THEMA
/
BIORHYTM
/
BIORYTHM
/
BIORHYTH.LST
< prev
Wrap
File List
|
1998-03-14
|
10KB
|
432 lines
' ***********************************************************************
' * Biorhythmus ST Version GfA-BASIC *
' * 15.02.87 *
' * WOLFGANG WENK *
' * >>> KOPIEREN ERLAUBT <<< Hauptstr.22, 2167 Himmelpforten *
' * Tel.: 04144/8678 *
' * INPUTFORM - Routine von MICHAEL VAGTS, Stade *
' ***********************************************************************
If Xbios(4)<>2 Then
Alert 3,"Der BIORHYTHMUS läuft|nur in der|hohen Auflösung",1,"schade",Dummy%
End
Endif
'
Dim Modus$(10)
Dim Korx(500),Kory(500),Seey(500),Geiy(500)
'
Alert 1,"Programm BIORHYTHMUS| (c) W.Wenk 1987| | >>> PUBLIC DOMAIN <<< ",1,"Auja|Needanke",A%
If A%=1
Deftext ,16,,32
Text 100,100,"Dann geht's jetzt los!!"
Pause 50
Endif
If A%=2
Goto Schluss
Endif
Pause 50
' ----------------> INIT
' ***************** Mouse als Fragezeichen
Let Bio$=Mki$(2)+Mki$(1)+Mki$(1)
Let Bio$=Bio$+Mki$(0)+Mki$(1)
For I%=1 To 16
Read Hinten
Let Bio$=Bio$+Mki$(Hinten)
Next I%
For I%=1 To 16
Read Vorn
Let Bio$=Bio$+Mki$(Vorn)
Next I%
Data 1792,6272,8256,17952,18832,18576,31008,576,3200,2304,2304,2304,3840,2304,2304,3840
Data 0,1792,8064,14784,12384,12384,192,384,768,1536,1536,1536,0,1536,1536,0
Defmouse Bio$
'
Sauber$=Chr$(27)+"E"
'
Logo$=Chr$(14)+Chr$(15)+" B I O R H Y T H M U S "+Chr$(14)+Chr$(15)
'
Dim Monattage%(13)
Dim Tagesname$(7)
For I%=1 To 13
Read Monattage%(I%)
Next I%
For I%=1 To 7
Read Tagesname$(I%)
Next I%
'
Data 0,31,59,90,120,151,181,212,243,273,304,334,365
Data Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag
'
' -------------> Titel
Titel:
'
Print Sauber$
'
Deftext 1,0,0,6
For I%=10 To 270
Text I%,320," W.Wenk 1987"
Next I%
Text 260,320,Chr$(189)
Deftext ,0,0,9
Text 160,20,Logo$
Deffill 1,2,1
Line 0,22,639,22
Prbox 550,300,80,50
'
Graphmode 1
Rbox 555,305,85,55
Defline 1,4,0,0
Line 110,70,110,280
Defline 1,4,0,1
Line 110,180,540,180
Defline 1,1,0,0
Text 90,90,"+"
Text 90,185,"0"
Text 90,270,"-"
'
For I=120 To 540 Step 0.5
S=Sin(I*Pi/80)*80+160
Line I-5,S-5,I+5,S+5
Next I
For K=120 To 540 Step 0.5
S=Sin(K*Pi/60)*60+160
Line K-1,S-1,K+1,S+1
Next K
Deftext ,1,0,8
Box 150,370,300,350
Deffill ,2,3
Pbox 269,370,301,350
Text 155,365,"Erklärung "
Defline 1,4,0,0
Box 320,370,470,350
Defline 1,1,0,0
Pbox 440,368,468,352
Text 325,365,"Los geht's"
'
Defline 1,2,0,0
Repeat
Until Len(Inkey$) Or Mousek
If Mousex>269 And Mousex<300 And Mousey>350 And Mousey<370
Goto Erklaerung
Endif
Goto Eingabe
'
'
Erklaerung:
'
Print Sauber$
Deftext ,0,0,9
Text 160,20,Logo$
Rbox 620,380,25,25
Deftext ,16,0,9
Text 150,60,"Was ist der BIORYTHMUS ??"
Text 150,75,"-------------------------"
Deftext ,1,0,6
Text 40,100,"BIORHYTHMUS hat nichts mit Tanzen zu tun,wie Du vielleicht denkst."
Text 40,110,"Schon die alten Griechen glaubten, daß das Leben in bestimmten "
Text 40,120,"Zyklen abläuft. Die Zyklen beginnen bei der Geburt als Sinuskurve"
Text 40,130,"zu laufen."
Deftext ,1,0,8
Text 70,160,"1. Der PHYSISCHE Zyklus = 23 Tage "
Text 70,175,"2. Der EMOTIONALE Zyklus = 28 Tage "
Text 70,190,"3. Der INTELEKTUELLE Zyklus = 33 Tage "
Deftext ,1,0,6
Text 40,210,"Kritisch sind immer nur die Tage, an denen sich die Kurve mit der "
Text 40,220,"Mittelachse kreuzt. Vielen Leute glauben, daß man an diesen Tagen"
Text 40,230,"häufiger Fehler macht, Unfälle passieren oder man körperlich"
Text 40,240,"anfälliger ist. Sollte sich für Dich ergeben, daß heute ein"
Text 40,250,"kritischer Tag ist, und Du machst keinen Fehler, Dir fällt kein"
Text 40,260,"Ziegelstein auf den Kopf oder Du hast keinen Nervenzusammenbruch,"
Text 40,270,"mach' mich bitte nicht dafür verantwortlich!!"
Deftext ,5,0,13
Text 160,300,"Und nun viel Spaß mit den Kurven !! "
Box 240,380,410,350
Deftext ,16,0,16
Text 250,370,"Alles klar ??"
Deftext ,1,0,5
Repeat
Text 250,381,"--> T A S T E <--"
Pause 10
Text 250,381," "
Until Len(Inkey$) Or Mousek
Goto Eingabe
'
'
Eingabe:
Print Sauber$
Graphmode 1
Deftext ,0,0,9
Text 160,20,Logo$
Deffill 1,2,2
Line 0,22,639,22
Prbox 40,45,560,80
Deffill ,,1
Prbox 40,81,560,350
Deftext ,16,0,13
Text 50,68,"Meine Fragen"
Text 390,68,"Deine Antworten"
Deftext ,0,0,13
Text 45,100,"Dein Name: "
X=420
Y=100
Modus=3
Laenge=10
Gosub Inputform
Nam$=Key$
'
'
Text 45,120,"..und Dein Geburtsdatum "+Upper$(Nam$)
Text 45,138,"[z.B. 1.Aug.1960 = 01081960]"
Eindat1:
Y=138
Modus=1
Laenge=8
Gosub Inputform
Gebdat$=Key$
'
If (Val(Mid$(Gebdat$,3,2))>12) Or (Val(Left$(Gebdat$,2))>31)
Goto Fehler1
If (Val(Mid$(Gebdat$,3,2))<=0) Or (Val(Left$(Gebdat$,2))<=0)
Goto Fehler1
Endif
Endif
' -----------------> wochentag der geburt
'
Gebtag=Val(Left$(Gebdat$,2))
Gebmon=Val(Mid$(Gebdat$,3,2))
Gebjah=Val(Right$(Gebdat$,4))
Gebmon=Int(Gebmon)
Gebtag=Int(Gebtag)
Gebjah=Int(Gebjah)
Tageab=Int(Gebtag+365.25*Gebjah+Monattage%(Gebmon)+0.01*Gebmon-0.03)
K=Int(0.6+(1/Gebmon))
L=Gebjah-K
O=Gebmon+12*K
P=L/100
Z1=Int(P/4)
Z2=Int(P)
Z3=Int((5*L)/4)
Z4=Int(13*(O+1)/5)
Z=Z4+Z3-Z2+Z1+Gebtag-1
Z=(Z-(7*Int(Z/7)))+1
'
Text 45,180,"Für welchen Monat soll ich die Kurven berechnen ?"
Text 45,200,"[z.B. MAI 1986 = 051986]"
Eindat2:
Y=200
Laenge=6
Gosub Inputform
Start$="01"+Key$
If Val(Mid$(Start$,3,2))>12
Goto Fehler2
Endif
If Val(Right$(Start$,4))<=Gebjah
Goto Fehler3
Endif
'
' -------------------------> gesamttage berechnen
'
Bistag=Val(Left$(Start$,2))
Bismon=Val(Mid$(Start$,3,2))
Bisjah=Val(Right$(Start$,4))
Nochmal:
Bismon=Int(Bismon)
Bistag=Int(Bistag)
Bisjah=Int(Bisjah)
Tagebis=Int(Bistag+365.25*Bisjah+Monattage%(Bismon)+0.01*Bismon-0.03)
Altertage=Tagebis-Tageab+1
Deffill 0,2,1
Defline 1,1,0,0
Prbox 55,230,540,340
For I=10 To 30 Step 5
Rbox 60+I,235+I,540-I,340-I
Next I
Graphmode 1
Deftext ,17,8
Text 150,235,"Das erste Zwischenergebnis !"
Deftext ,1,5
Text 110,285,400,"Du bist in diesem Monat "+Str$(Altertage)+" Tage alt "
Text 120,301,320," und an einem "+Tagesname$(Z)+" geboren !"
For I%=11 To 31 Step 1
Rbox 60+I%,235+I%,540-I%,340-I%
Next I%
Deftext ,16,,6
Repeat
Text 230,322,"--> Taste <--"
Pause 10
Text 230,322," "
Until Len(Inkey$) Or Mousek
'
' --------------------> Berechnen Kurvenfaktor
'
Ps=(Altertage) Mod (23) ! Koerper
Es=(Altertage) Mod (28) ! Emotion
Is=(Altertage) Mod (33) ! Intellekt
'
' -------------------> Bildschirm für Kurven
Print Sauber$
Deftext ,0,0,9
Text 160,20,Logo$
Defline 1,1,0,0
Line 0,22,639,22
Line 568,48,568,310
Line 72,310,72,48
Line 72,190,568,190
Deffill 1,2,2
Pbox 72,48,568,91
Deffill 0,2,8
Pbox 78,55,560,82
Box 78,55,560,82
Box 72,289,568,310
Deftext 1,1,0,13
Text 75,305,"1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31"
Text 80,75,"Für "+Upper$(Nam$)
Text 430,75,"* "+Left$(Gebdat$,2)+"."+Mid$(Gebdat$,3,2)+"."+Right$(Gebdat$,4)
Deftext 1,17,0,16
Text 280,75,Str$(Bismon)+"/"+Str$(Bisjah)
Deftext ,,,26
Text 600,170,"+"
Text 600,270,"-"
Defline 1,2,3,3
Line 73,343,110,343
Defline 3,2,3,3
Line 73,357,110,357
Defline 6,2,3,3
Line 73,372,110,372
Deftext 1,1,0,6
Text 72,330,"Es bedeutet:"
Text 115,345,"= physisch/Körper"
Text 115,360,"= Emotion/Gefühl"
Text 115,375,"= Intellekt/Geist"
Text 355,330,"[RETURN] = neuer Monat"
Text 355,345,"[SPACE] = neue Daten"
Text 355,360," * = FEIERABEND !!"
Text 355,375,"[ALTERN+HELP]= Ausdruck"
' ----------------------------> Kurven zeichnen
'
Deftext 1,1,0,13
Defline 1,2,0,0
For X=88 To 552 Step 16
Line X,91,X,289
Next X
'
For K=0 To 496 Step 8
Korx(K)=K+72
Kory(K)=190-50*Sin(Pi*2/496*K*31/23-Pi/23+Pi*2*Ps/23)
Seey(K)=190-50*Sin(Pi*2/496*K*31/28-Pi/28+Pi*2*Es/28)
Geiy(K)=190-50*Sin(Pi*2/496*K*31/33-Pi/33+Pi*2*Is/33)
Next K
'
For K=8 To 496 Step 8
Defline 1,2,3,3
Line Korx(K-8),Kory(K-8),Korx(K),Kory(K)
Defline 3,2,3,3
Line Korx(K-8),Seey(K-8),Korx(K),Seey(K)
Defline 6,2,3,3
Line Korx(K-8),Geiy(K-8),Korx(K),Geiy(K)
Next K
Defline 1,2,0,0
'
A$=Chr$(Inp(2))
If Asc(A$)=13 Then
Goto Weiter
Endif
If Asc(A$)=32 Then
Goto Eingabe
Endif
If Asc(A$)=42 Then
Goto Schluss
Endif
'
Procedure Inputform
Local Key
Local I
Deftext ,1,0,13
Key$=""
Modus$(1)="1234567890"
Modus$(2)=Modus$(1)+"."
Modus$(3)="abcdefghijklmnopqrstuvwxyzßüöä ABCDEFGHIJKLMNOPQRSTUVWXYÜÖÄ"
Modus$(4)=Modus$(2)+Modus$(3)
Modus$(5)=Modus$(4)+"!§$%&/()=?`'^#*+@\]}[{,.-;:_~|"+Chr$(34)
Modus$(6)="jJyYnN"
If Modus<>0
Modus$=Modus$(Modus)
Endif
Repeat
Text X,Y,Upper$(Key$)+Chr$(4)+" "
Repeat
Key=Asc(Inkey$)
Until Key
If Key=8 Or Key=127 Or (Modus=2 And Key=42)
If Len(Key$)=0
Out 2,7
Else
Key$=Left$(Key$,Len(Key$)-1)
Endif
Else
If Instr(0,Modus$,Chr$(Key))=0 Or Len(Key$)>=Laenge
Out 2,7
Else
Key$=Key$+Chr$(Key)
Endif
Endif
Until Key=13
Text X,Y,Upper$(Key$)+" "
Deftext 1,0,0,13
Return
'
Weiter:
Bismon=Bismon+1
If Bismon=13 Then
Bismon=1
Bisjah=Bisjah+1
Endif
Goto Nochmal
'
Fehler1:
Deftext ,16,0,16
Text 200,380,"Falsches Datum"
Out 2,7
Pause 10
Out 2,7
Pause 100
Text 200,380," "
Deftext ,0,0,13
Text 420,138," "
Goto Eindat1
'
Fehler2:
Deftext ,16,0,16
Text 200,380,"Falsches Datum"
Out 2,7
Pause 10
Out 2,7
Pause 100
Text 200,380," "
Deftext ,0,0,13
Text 420,200," "
Goto Eindat2
'
Fehler3:
Deftext ,16,0,16
Text 150,380,"Das geht nicht (Jahr=Geb.-Jahr)"
Out 2,7
Pause 10
Out 2,7
Pause 100
Text 150,380," "
Deftext ,0,0,13
Text 420,200," "
Goto Eindat2
'
Schluss:
Print Sauber$
Graphmode 2
Deftext ,4,,32
Text 250,200,"Tschuess !!"
Deffill 1,2,2
Box 180,100,500,300
Pbox 181,101,499,299
Pause 200
New
End